1. Field of the Invention
Embodiments in accordance with the present disclosure relate to computer networks, and particularly to processing domain name system (DNS) information.
2. Description of the Related Art
Network resources such as those available via the Internet are accessed according to Internet Protocol (IP) addresses. IP addresses are represented numerically, traditionally as a quartet of values having the form 111.111.111.111. From the early inception of network computing, familiar alphanumeric name-based addressing has been used to allow users to more easily locate and remember the addresses for resources. For example, domain names are assigned to computing servers and clients. The domain name system facilitates the translation between IP addresses and domain names by maintaining accessible records that associate one or more domain names with one or more IP addresses.
While early network implementations could utilize a single periodically distributed ASCII file to translate between domain names and IP addresses, modern networks such as the Internet rely on the domain name system (DNS) for the resolution of names and addresses. FIG. 1 is a simplified block diagram illustrating traditional DNS processing. A client computing device 102 includes a resolver 104 for initiating DNS requests. The resolver may be a stand alone component such as a software module of the client, or may be embedded within various applications such as web browsers, file transfer protocol programs, email applications, and the like that utilize Internet resources. When the client requests an Internet resource such as a web page or delivery of an email message, the resolver is charged with determining the IP address(es) of the requested resource so that the appropriate request can be issued to the appropriate address. The resolver is configured with the addresses of the group of ISP DNS Nameservers 110 that handle recursive DNS processing for the client device. As is often the case, the group of nameservers is provided by the Internet Service Provider (ISP) for the client device, although this isn't required. Nameservers 110 are recursive nameservers which resolve DNS requests using a recursive process that accesses various other nameservers in order to satisfy a given query.
Consider an example DNS request 150 from client 102 to nameserver 112 for the domain name information of “www.opendns.com”. The ISP DNS nameserver first checks a local cache to attempt to resolve the request. The ISP DNS nameserver maintains the local cache with domain name records that have already been resolved to improve performance in responding to subsequent DNS requests. If nameserver 112 is maintaining the requested domain name in the local cache, it will issue a DNS response 152 to the client with the domain name record including the IP address of “www.opendns.com”.
If the ISP DNS nameserver 112 does not have an entry for the requested domain name, it will launch recursive processing using authoritative DNS nameservers 120 and/or root DNS nameservers 130. An authoritative nameserver maintains an authoritative or master list for a zone which is a group of computing devices. Recursive DNS nameservers obtain domain name information such as the IP address of a requested resource from authoritative nameservers. The root DNS nameservers are also authoritative DNS nameservers. They are called root DNS nameservers because they contain the authoritative domain name information for a set of top level domains (TLDs) in the so-called root zone. For example the root DNS nameservers contain the IP addresses for finding domain name information for lower level domains in the top level domains. The top level domains include the generic top-level domains (gTLD) of .com, .org, .net, etc.
Nameserver 112 first issues a DNS request 154 to root DNS nameservers 130. The root DNS nameservers 130 can include multiple nameservers, one or more of which can be issued a request for the needed information. One of the nameservers 132 responds with a DNS response 156 including the IP address of one or more authoritative name servers for the “.com” domain. When ISP DNS nameserver 112 obtains the IP address for the “.com” domain, it issues another DNS request 158 to the specified one of the authoritative DNS nameservers 120. The specified authoritative nameserver will issue a DNS response 160 with the IP address of one or more nameservers for the “opendns.com” domain. This process repeats between the ISP DNS nameserver and the authoritative name servers 120 until the ISP DNS nameserver receives the IP address for “www.opendns.com”. The client 102 application can then issue the resource request to the appropriate computer, such as an HTTP request to the server at the corresponding IP address.
FIG. 2 is a simplified block diagram of a typical authoritative DNS nameserver 120 as shown in FIG. 1 that can store domain name records. In this example, the authoritative DNS nameserver 120 is a computer system with a processor 150 coupled to a communications interface 160 and a memory or storage 170 via a system bus 152. The communications interface 160 exchanges data with a communications network, such as the Internet, via line 154. The processor 150 receives DNS requests from the Internet and resolves the DNS requests based on domain name records, such as a DNS record 180 stored in memory 170. The DNS record 180 includes a domain name 182, which is used as a key to lookup a corresponding IP address 184, and includes a time-to-live (TTL) value 186. The TTL value for the DNS record can be set by the administrator of the authoritative DNS nameserver. The TTL value is provided as part of the DNS response to DNS requests and is used by the receiving nameservers to control how long the DNS record should be maintained and treated as valid. In accordance with the DNS protocol, the receiving nameservers are to invalidate any cached records having an expired TTL value. In this manner, the administrator of an authoritative server can control how long recursive nameservers will utilize an old record before checking back with the authoritative server to obtain fresh data for the DNS record.
Although DNS record caching by recursive DNS nameservers can reduce network traffic and improve DNS response performance, there remains room for improvement to provide better resolution processes for the domain name system.